home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / COMM / BBS / RISCBBS / NewTo101 < prev    next >
Text File  |  1992-02-25  |  5KB  |  130 lines

  1.  
  2. This file lists the major things that are new/different to v1.01/beta.
  3.  
  4. The v1.01/beta release does not add any really new 'outward' features, but
  5. is a kind of efficiency-maintenance update... it does away with the old,
  6. cumbersome way the menu-system worked.
  7.  
  8.  
  9. * New menu-structures.
  10.   RiscBBS no longer has all menus inside the SysBBS file, there's now a
  11.   new subdir called Menus which holds a 'menu-file' per menu. The advantages
  12.   of the system are obvious: textually named menus are easier to find and
  13.   maintain.
  14.  
  15. * New method of defining menu-options.
  16.   The old 'option' command has been completely thrown out and is replaced by
  17.   the much more powerful 'defopt' command. I know this change is quite
  18.   radical and will ask quite a bit of time to reconfigure, but once it's up
  19.   and running, it's really very powerful!!
  20.  
  21.   The syntax of 'defopt' is best illustrated with the following example:
  22.  
  23.     defopt N= `Logoff note` 10 ``
  24.       m_enter `A1 S`
  25.       logoff
  26.     endopt
  27.  
  28.   The first 3 parameters of 'defopt' are the same as those found with the old
  29.   'option' command: 'N=' specifies which key to assign (here, it's key 'N').
  30.   The string `Logoff note` tells RiscBBS to display "Logoff note" when this
  31.   option is selected, the 10 is the user-level needed to access this option,
  32.   and finnally, the 4th (new) parameter is a string specifying which userkeys
  33.   the user should have to access this option. Here, no userkeys are needed, so
  34.   an empty string is given.
  35.   Then comes a number of commands that must be executed when the option is
  36.   selected. Any command valid in bbs-files is valid here! Herein lies the real
  37.   power of the new 'defopt' method.
  38.   Finally, 'endopt' marks the end of the option-definition.
  39.  
  40. * Default options feature.
  41.   It's now possible to set up a file called System.Kernel.Defaults in which you
  42.   put definitions of menu-options you want to have active on all menus. They 
  43.   are set up in exactly the same way as a normal 'local' menu-option.
  44.   Local option-definitions will override default option-definitions when they
  45.   are encountered.
  46.  
  47. * New/modified commands.
  48.   Some commands have been added/changed to cope with the new menu system:
  49.  
  50.     Command     Example usage
  51.     -------     -------------
  52.     msgbase     msgbase <path> Messages Will define the messagebase path and
  53.                                         messagebase name. (only in SysBBS)
  54.  
  55.     filebase    filebase <path> Files   See above.
  56.  
  57.     - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  58.  
  59.     base        base M Msgbase.Main     Will select the messagebase and make
  60.                                         menu Msgbase.Main the active one.
  61.  
  62.     menu        menu Filebase.NewScan   Will make menu Filebase.NewScan the
  63.                                         active one.
  64.  
  65.     pushmenu    pushmenu                Will push the currently active menu
  66.                                         on the menu stack. This stack can
  67.                                         hold max. 16 menus.
  68.  
  69.     popmenu     popmenu                 Pops the last pushed menu from the
  70.                                         menu stack.
  71.  
  72.     a_list      a_list F                Will list all accessible areas in the
  73.                                         filebase.
  74.  
  75.     a_change    a_change M              Allows the user to change the active
  76.                                         area in the messagebase.
  77.  
  78. * Return codes.
  79.   Most of RiscBBS's commands now return an 'error-code' through the new 'RET'
  80.   bbs-variable. Succesful termination will set RET to 0. When an error
  81.   occured during execution of a command, the value of RET will be set
  82.   accordingly. I will provide a list of possible RETurn codes when I release
  83.   the docs, but for now it is suffice to check whether RET is 0 or not.
  84.  
  85.   An example of using RET:
  86.  
  87.      defopt G= `Globally` 10 ``
  88.        a_reset `A0 B G`
  89.        f_list `1 G N L`
  90.        if RET=0
  91.          menu Filebase.GlobZipNew
  92.        else
  93.          menu Filebase.Main
  94.        endif
  95.      endopt
  96.  
  97. * New/enhanced control constructs.
  98.   RiscBBS now provides some quite powerful control constructs that allow for
  99.   a flexible bbs-setup.
  100.  
  101.   - The if-else-endif construct:
  102.   
  103.   Doesn't need any comments really, except that they may be nested up to 32
  104.   levels deep.
  105.  
  106.   - The do-enddo construct.
  107.  
  108.   This is a disguised while loop: 'do' (like 'if') accepts a single string
  109.   that is to be evaluated. As long as it evaluates to a non-0 value, the loop
  110.   will execute. Maximum nesting-level is 8.
  111.  
  112.   - The alt-case-endalt construct.
  113.  
  114.   This a powerful one: it acts like a C switch construct but has less
  115.   restrictions: 'alt' accepts a single string which is to be evaluated.
  116.   Multiple 'case' statements can then be used to examine this value. A 'case'
  117.   may be broken using 'skip' (cfr: C's break), fallthru is also supported.
  118.   The default 'case' is denoted using 'case any'. 'endalt' closes an 'alt'
  119.   construct. Note that specifying 'alt select' at the top of the construct
  120.   restricts you to evaluate boolean expressions only, but looks a bit neater
  121.   than 'alt -1' (TRUE = -1, FALSE = 0). Maximum nesting-level is 4.
  122.  
  123. * Discouraging goto's.
  124.   The new control constructs should be used in preference to goto's/labels.
  125.   Goto's that jump out of another control construct do not reset the nesting
  126.   level and thus can upset the bbs-script interpreter when used repeatedly.
  127.  
  128.  
  129.                                                               Carl Declerck.
  130.